package com.lin.gameserver.handler;

import com.lin.gameserver.protobuf.MessageWrapper;
import com.lin.gameserver.session.GameSession;

/**
 * 消息处理器接口，所有具体的命令处理器都需要实现这个接口
 */
public interface MessageHandler {
    
    /**
     * 获取处理器支持的命令号
     *
     * @return 命令号
     */
    int getCommandId();
    
    /**
     * 处理消息
     *
     * @param session 游戏会话
     * @param wrapper 消息包装器
     * @return 处理结果，true表示成功，false表示失败
     */
    boolean handle(GameSession session, MessageWrapper wrapper);
    
    /**
     * 是否需要认证
     *
     * @return 如果需要认证返回true，否则返回false
     */
    default boolean requireAuthentication() {
        return true;
    }
} 